// 导入promise请求
import http from '../../utils/http_promise.js';

// 1 导入验证插件;
import WxValidate from '../../utils/WxValidate.js';

Page({

  /**
   * 页面的初始数据
   */

  data: {
     msgList:[],
     user:{},
     currentPage:1,
     isLoading:false,
     isFinish:false
  },

  // 2 定义验证规则
  initValidate() {

    // 验证规则
    const rules = {

      question: {
        required: true,
        minlength: 5,
        maxlength: 150
      }

    }

    // 提示信息
    const messages = {
      question: {
        required: "请输入你的问题!",
        minlength: "消息内容至少5位！",
        maxlength: "消息内容不能超过150个字符!"
      }
      
    }

    // 自定义验证规则
    this.WxValidate = new WxValidate(rules, messages);
    
  },
  
  // 获取消息列表 
  getMsgList(){

    this.setData({
      isLoading:true
    })
      
    http.request({
        url:"msgs?page="+this.data.currentPage,
        requireAuth:true
    })

    .then(res=>{

        if(this.data.currentPage == res.data.last_page){
           this.setData({
              isFinish:true
           })
        }
       
        // 数据累加
        let tmpArr = this.data.msgList;
        tmpArr = tmpArr.concat(res.data.data);

        this.setData({
          msgList:tmpArr,
          isLoading:false
        })
        this.data.currentPage++;
    })
       
  },
  
  onSubmit(e){

    // 4 执行验证 

    let params = e.detail.value;

    if (!this.WxValidate.checkForm(params)) {
      const error = this.WxValidate.errorList[0];
      wx.showModal({
        title: '提示信息',
        content: error.msg
      });
      return false
    }
    
     // 发起保存消息
     http.request({
        method:'post',
        url:"msg/save",
        requireAuth:true,
        data:e.detail.value
     })
    
     .then(res=>{
     
        if(res.data.status == 200){
          wx.showToast({
            title: '消息发布成功'
          })
        }
        
     })
    
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

     this.getMsgList();
     let user = wx.getStorageSync("user");
     this.setData({user})
     
     // 3 实例化验证规则对象 
     this.initValidate();

  },
  
  onReachBottom(){

    if(this.data.isFinish) 

    return wx.showToast({
      title: '亲,没有更多消息了~',
      icon:'none'
    }) 

     if(this.data.isLoading) return false;   
     this.getMsgList();
  }

  
})